home *** CD-ROM | disk | FTP | other *** search
- unit DeskTesterForm;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- DesktopManager, StdCtrls, ComCtrls, Spin, ExtCtrls;
-
- type
- TForm1 = class(TForm)
- dm: TDesktopManager;
- DeskView: TListView;
- RefreshBtn: TButton;
- GroupBox1: TGroupBox;
- Label1: TLabel;
- CurName: TEdit;
- ChangeCaption: TButton;
- Label2: TLabel;
- XPos: TSpinEdit;
- YPos: TSpinEdit;
- Bevel1: TBevel;
- Label3: TLabel;
- Label4: TLabel;
- ChangePos: TButton;
- GroupBox2: TGroupBox;
- Label5: TLabel;
- TextColor: TPanel;
- Label6: TLabel;
- TextBackground: TPanel;
- ColorDialog: TColorDialog;
- MakeTransparent: TButton;
- procedure RefreshBtnClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure DeskViewSelectItem(Sender: TObject; Item: TListItem;
- Selected: Boolean);
- procedure CurNameChange(Sender: TObject);
- procedure ChangeCaptionClick(Sender: TObject);
- procedure ChangePosClick(Sender: TObject);
- procedure TextColorClick(Sender: TObject);
- procedure TextBackgroundClick(Sender: TObject);
- procedure MakeTransparentClick(Sender: TObject);
- private
- { Private declarations }
- OriginalName: String;
- OriginalIdx: Integer;
- OriginalPos: TPoint;
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- procedure TForm1.RefreshBtnClick(Sender: TObject);
- var
- pt: TPoint;
- Idx: Integer;
- Item: TListItem;
- begin
- RefreshBtn.Enabled := False;
- try
- TextColor.Color := dm.TextColor;
- if dm.BackgroundColor = $ffffffff then begin
- TextBackground.Color := clBtnFace;
- TextBackground.Caption := 'transparent';
- end else begin
- TextBackground.Color := dm.BackgroundColor;
- TextBackground.Caption := '';
- end;
-
- dm.Active := True;
- try
- DeskView.Items.Clear;
- for Idx := 0 to dm.ItemCount - 1 do begin
- Item := DeskView.Items.Add;
- Item.Caption := dm.Caption [Idx];
- pt := dm.Position [Idx];
- Item.SubItems.Add (IntToStr (pt.x));
- Item.SubItems.Add (IntToStr (pt.y));
- if Idx = 0 then DeskView.Selected := Item;
- end;
- finally
- dm.Active := False;
- end;
- finally
- RefreshBtn.Enabled := True;
- end;
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- RefreshBtn.Click;
- end;
-
- procedure TForm1.DeskViewSelectItem (Sender: TObject; Item: TListItem; Selected: Boolean);
- begin
- if Selected then begin
- CurName.Text := Item.Caption;
- XPos.Value := StrToInt (Item.SubItems [0]);
- YPos.Value := StrToInt (Item.SubItems [1]);
- // Backup initial values
- OriginalName := CurName.Text;
- OriginalIdx := DeskView.Items.IndexOf (Item);
- OriginalPos := Point (XPos.Value, YPos.Value);
- end else begin
- CurName.Text := '';
- XPos.Value := 0;
- YPos.Value := 0;
- OriginalIdx := -1;
- end;
- end;
-
- procedure TForm1.CurNameChange(Sender: TObject);
- begin
- ChangeCaption.Enabled := CurName.Text <> '';
- end;
-
- procedure TForm1.ChangeCaptionClick(Sender: TObject);
- begin
- dm.Active := True;
- try
- // Check that the target item still exists with same index
- if dm.Caption [OriginalIdx] = OriginalName then
- if dm.Position [OriginalIdx].x = OriginalPos.x then
- if dm.Position [OriginalIdx].y = OriginalPos.y then begin
- dm.Caption [OriginalIdx] := CurName.Text;
- RefreshBtn.Click;
- end;
- finally
- dm.Active := False;
- end;
- end;
-
- procedure TForm1.ChangePosClick(Sender: TObject);
- begin
- dm.Active := True;
- try
- // Check that the target item still exists with same index
- if dm.Caption [OriginalIdx] = OriginalName then
- if dm.Position [OriginalIdx].x = OriginalPos.x then
- if dm.Position [OriginalIdx].y = OriginalPos.y then begin
- dm.Position [OriginalIdx] := Point (XPos.Value, YPos.Value);
- RefreshBtn.Click;
- end;
- finally
- dm.Active := False;
- end;
- end;
-
- procedure TForm1.TextColorClick(Sender: TObject);
- begin
- ColorDialog.Color := dm.TextColor;
- if ColorDialog.Execute then begin
- dm.TextColor := ColorDialog.Color;
- RefreshBtnClick (Sender);
- end;
- end;
-
- procedure TForm1.TextBackgroundClick(Sender: TObject);
- begin
- ColorDialog.Color := dm.BackgroundColor;
- if ColorDialog.Execute then begin
- dm.BackgroundColor := ColorDialog.Color;
- RefreshBtnClick (Sender);
- end;
- end;
-
- procedure TForm1.MakeTransparentClick(Sender: TObject);
- begin
- dm.BackgroundColor := $ffffffff;
- RefreshBtnClick (Sender);
- end;
-
- end.
-